package com.sistemadistribucion.servlets;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.sistemadistribucion.controlador.BDWeb;
import DTO.ClienteParticularVO;
import DTO.DireccionVO;

@WebServlet(asyncSupported = true, urlPatterns = { "/servletClienteParticular" })
public class servletClienteParticular extends HttpServlet 
{
	private static final long serialVersionUID = 1L;
       
    public servletClienteParticular() 
    {
        super();
    }
 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		try 
		{ 	
			String action = request.getParameter("action");
			String jspPage = "main.jsp";		
				
		if ((action==null) || (action.length() < 1) )
		{
			action = "default";
		}
		
		if ("default".equals(action))
		{
			jspPage = "main.jsp";
		}			
		else if ("altaCliente".equals(action)) 
		{
			System.out.println("Alta cliente");
			
			HttpSession session = request.getSession();
			if(session.getAttribute("sucursal") != null)
			{
				BDWeb bd = BDWeb.getInstancia();
				
				int idDireccion = 0;
				String calle = request.getParameter("direccion");
				String localidad = request.getParameter("localidad");
				String codPos = request.getParameter("codigoPostal");
				String provincia = request.getParameter("provincia");
				String pais = request.getParameter("pais");
				DireccionVO dVO = new DireccionVO(idDireccion, calle, provincia, pais, localidad, codPos);
				
				String nombre = request.getParameter("nombre");
				String apellido = request.getParameter("apellido");
				int dni = Integer.parseInt(request.getParameter("dni"));
				ClienteParticularVO cpVO = new ClienteParticularVO(0, 0, dni, nombre, apellido);
				
						
				//Altacliente devuelve boolean, si fue ok, mensaje ok, sino otro.
				bd.agregarClienteParticula(cpVO, dVO);
				String mensaje;
				
				if (bd.buscarClienteParticular(cpVO.getDni()) == null)
				{
					mensaje = "Error en alta de Empresa";
				}
				else
				{
					mensaje = "Alta Particular satifactoria";
				}
				
				jspPage = "mostrarMensaje.jsp";
				request.setAttribute("mensaje", mensaje);
			}
			else
			{
				jspPage = "mostrarMensaje.jsp";
				request.setAttribute("mensaje", "Ha ocurrido un error con la sucursal");	
			}
		}
			System.out.println("Dispatch al main desde servletCliente");
			dispatch(jspPage,request, response);
		} 
			catch (Exception e) 
		{
			e.printStackTrace();
		}
	}
	
	
	protected void dispatch(String jsp, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		if(jsp != null)
		{
			RequestDispatcher rd = request.getRequestDispatcher(jsp);
			rd.forward(request, response);
		}
	}
}